package top.tangyh.lamp.care.vo.result;

import cn.hutool.core.map.MapUtil;
import io.swagger.v3.oas.annotations.media.Schema;
import java.time.LocalDateTime;
import java.util.Map;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import top.tangyh.basic.base.entity.Entity;
import top.tangyh.basic.interfaces.echo.EchoVO;
import java.io.Serializable;

/**
 * <p>
 * 表单查询方法返回值VO
 * 患者住院记录表
 * </p>
 *
 * @author zqb
 * @date 2024-12-20 13:34:44
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@Builder
@Schema(description = "患者住院记录表")
public class HisHospitalRecordResultVO extends Entity<Long> implements Serializable, EchoVO {

    private static final long serialVersionUID = 1L;

    private Map<String, Object> echoMap = MapUtil.newHashMap();

    @Schema(description = "主键ID")
    private Long id;

    /**
    * 患者识别号
    */
    @Schema(description = "患者识别号")
    private String visitNo;
    /**
    * 患者住院号
    */
    @Schema(description = "患者住院号")
    private Long patId;
    /**
    * 住院流水号
    */
    @Schema(description = "住院流水号")
    private Long hospitalId;
    /**
    * 患者入院时间
    */
    @Schema(description = "患者入院时间")
    private LocalDateTime regTime;
    /**
    * 患者出院时间
    */
    @Schema(description = "患者出院时间")
    private LocalDateTime wardOutTime;
    /**
    * 数据创建时间（his同步用）
    */
    @Schema(description = "数据创建时间（his同步用）")
    private LocalDateTime createTime;
    /**
    * 数据更新时间（his同步用）
    */
    @Schema(description = "数据更新时间（his同步用）")
    private LocalDateTime updateTime;
    /**
    * 医疗分支机构代码
    */
    @Schema(description = "医疗分支机构代码")
    private String branchCode;
    /**
    * 病案号(Medical record number),对应人
    */
    @Schema(description = "病案号(Medical record number),对应人")
    private String mrNo;
    /**
    * 主住院编号(如婴儿对应的母亲)
    */
    @Schema(description = "主住院编号(如婴儿对应的母亲)")
    private Long masterId;
    /**
    * 当前科室ID
    */
    @Schema(description = "当前科室ID")
    private Long deptId;
    /**
    * 当前病区ID
    */
    @Schema(description = "当前病区ID")
    private Long wardId;
    /**
    * 床位
    */
    @Schema(description = "床位")
    private Long bedId;
    /**
    * 电子标识号(腕带条码,射频识别编号)
    */
    @Schema(description = "电子标识号(腕带条码,射频识别编号)")
    private String efid;
    /**
    * 收治医师
    */
    @Schema(description = "收治医师")
    private Long admissionDoctor;
    /**
    * 住院医师
    */
    @Schema(description = "住院医师")
    private Long residentDoctor;
    /**
    * 主治医师
    */
    @Schema(description = "主治医师")
    private Long attendingDoctor;
    /**
    * 主任医师
    */
    @Schema(description = "主任医师")
    private Long chiefDoctor;
    /**
    * 医疗组
    */
    @Schema(description = "医疗组")
    private Long workGroupId;
    /**
    * 入院登记时间
    */
    @Schema(description = "入院登记时间")
    private LocalDateTime regTime2;
    /**
    * 入院科室
    */
    @Schema(description = "入院科室")
    private Long inDeptId;
    /**
    * 入院病区
    */
    @Schema(description = "入院病区")
    private Long inWardId;
    /**
    * 入住病区时间
    */
    @Schema(description = "入住病区时间")
    private LocalDateTime wardInTime;
    /**
    * 离院方式
    */
    @Schema(description = "离院方式")
    private Integer outWay;
    /**
    * 转院的接收医疗机构名称
    */
    @Schema(description = "转院的接收医疗机构名称")
    private String referralHospital;
    /**
    * 临床出院时间
    */
    @Schema(description = "临床出院时间")
    private LocalDateTime clnOutTime;
    /**
    * 病区出院时间
    */
    @Schema(description = "病区出院时间")
    private LocalDateTime wardOutTime2;
    /**
    * 结账时间
    */
    @Schema(description = "结账时间")
    private LocalDateTime checkOutTime;
    /**
    * 入院途径
    */
    @Schema(description = "入院途径")
    private Integer inWay;
    /**
    * 入院诊断ICD码
    */
    @Schema(description = "入院诊断ICD码")
    private String inDiagCode;
    /**
    * 入院诊断名称
    */
    @Schema(description = "入院诊断名称")
    private String inDiagName;
    /**
    * 护理等级
    */
    @Schema(description = "护理等级")
    private Integer careLevel;
    /**
    * 饮食医嘱ID
    */
    @Schema(description = "饮食医嘱ID")
    private Long dietOrderId;
    /**
    * 危急等级
    */
    @Schema(description = "危急等级")
    private Integer emeLevel;
    /**
    * 费别类型
    */
    @Schema(description = "费别类型")
    private Integer feeNature;
    /**
    * 保险号,医疗证号
    */
    @Schema(description = "保险号,医疗证号")
    private String insuranceNo;
    /**
    * 卡号
    */
    @Schema(description = "卡号")
    private String cardData;
    /**
    * 是否要出院审批
    */
    @Schema(description = "是否要出院审批")
    private Integer isOutApproval;
    /**
    * 登记人员
    */
    @Schema(description = "登记人员")
    private Long regEmpid;
    /**
    * 住院状态
    */
    @Schema(description = "住院状态")
    private Integer state;
    /**
    * 是否作废
    */
    @Schema(description = "是否作废")
    private Integer isInvalid;
    /**
    * 撤销人员
    */
    @Schema(description = "撤销人员")
    private Long invalidEmpid;
    /**
    * 撤销时间
    */
    @Schema(description = "撤销时间")
    private LocalDateTime invalidTime;
    /**
    * 当前病人状态流水
    */
    @Schema(description = "当前病人状态流水")
    private Long stateSn;
    /**
    * 数据检验位
    */
    @Schema(description = "数据检验位")
    private String dcd;
    /**
    * 入院诊断ID
    */
    @Schema(description = "入院诊断ID")
    private Long inDiagId;
    /**
    * 当前医疗阶段
    */
    @Schema(description = "当前医疗阶段")
    private Long phaseSeq;
    /**
    * 责任护士
    */
    @Schema(description = "责任护士")
    private Long primaryNurse;
    /**
    * 比例分类
    */
    @Schema(description = "比例分类")
    private String ratioClassify;
    /**
    * 是否家床
    */
    @Schema(description = "是否家床")
    private Integer isHomeBed;
    /**
    * 医疗付费方式
    */
    @Schema(description = "医疗付费方式")
    private String payment;
    /**
    * 登记机构
    */
    @Schema(description = "登记机构")
    private String regBranch;
    /**
    * 是否亚急诊病人
    */
    @Schema(description = "是否亚急诊病人")
    private Integer isUrgent;
    /**
    * 主管医生
    */
    @Schema(description = "主管医生")
    private Long responsibilityDoctor;
    /**
    * 托管科室
    */
    @Schema(description = "托管科室")
    private Long trusteeshipDeptId;



}
